#pragma once
#include "Sound.h"
#include "Input.h"
#include "Graphics_Lib.h"
#include "Entity.h"
#include "Player.h"
#include "World.h"

enum G_State {MENU, CLASS, GAME, DEAD, VICTORY};

// contains all game components
class GameEngine
{
private:
	bool running;
	G_State m_state;

	// audio
	Sound* pSound;

	// Input
	Input* pInput;

	// Graphics
	DX2DEngine* p2DEngine;

	float m_cameraSpeed;

	/** entity test */
	Entity test;
	Player player;
	World tWorld;
public:
	GameEngine();
	~GameEngine();
	void initialize();
	void update(float dT);
	void render();
	void drawText();
	void release();
	bool isRunning();
	void setRunning(bool a_run);
	void setState(G_State state);
};